package com.irdstudio.efp.rule.service.vo;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;

/**
 *
 * 规则入参
 *
 * @author Cytus_
 * @since 2018年5月15日 上午9:25:10
 * @version 1.0
 *
 */
public class RuleArgsEntity implements Serializable {

	/**
	 *
	 */
	private static final long serialVersionUID = 1L;

	//客户信息
	private CusInfoEntity cusInfo;

	//客户关联信息
	private List<CusRelInfoEntity> relInfos;

	//行内贷款信息
	private BankInnerLoanEntity innerLoan;

	//征信信息
	private PersonalCreditEntity credit;

	//申请相关信息
	private ApplyEntity apply;
	/** 纳税信息 */
	private TaxBaseEntity tax;
	
	//电核
	private TelAprvEntity telAprv;

	//业务参数配置信息
	private BizConfigParam cfgParam;
	/** 商户信息 */
	private MerchantEntity merchant;
	/** 获取设置的参数值和计算的结果值 */
	private Map<String, String> ruleParams;

	public CusInfoEntity getCusInfo() {
		return cusInfo;
	}

	public void setCusInfo(CusInfoEntity cusInfo) {
		this.cusInfo = cusInfo;
	}

	public List<CusRelInfoEntity> getRelInfos() {
		return relInfos;
	}

	public void setRelInfos(List<CusRelInfoEntity> relInfos) {
		this.relInfos = relInfos;
	}

	public void addRelInfo(CusRelInfoEntity relInfo) {
		if (Objects.isNull(relInfos))
			relInfos = new ArrayList<CusRelInfoEntity>();
		this.relInfos.add(relInfo);
	}

	public BankInnerLoanEntity getInnerLoan() {
		if (Objects.isNull(this.innerLoan)) {
			this.innerLoan = new BankInnerLoanEntity();
		}
		return innerLoan;
	}

	public void setInnerLoan(BankInnerLoanEntity innerLoan) {
		this.innerLoan = innerLoan;
	}

	public PersonalCreditEntity getCredit() {
		return credit;
	}

	public void setCredit(PersonalCreditEntity credit) {
		this.credit = credit;
	}

	public ApplyEntity getApply() {
		return apply;
	}

	public void setApply(ApplyEntity apply) {
		this.apply = apply;
	}

	public TelAprvEntity getTelAprv() {
		return telAprv;
	}

	public void setTelAprv(TelAprvEntity telAprv) {
		this.telAprv = telAprv;
	}

	public BizConfigParam getCfgParam() {
		return cfgParam;
	}

	public void setCfgParam(BizConfigParam cfgParam) {
		this.cfgParam = cfgParam;
	}

	public Map<String, String> getRuleParams() {
		if ( null == ruleParams )
			ruleParams = new HashMap<>();
		return ruleParams;
	}

	public void setRuleParams(Map<String, String> ruleParams) {
		this.ruleParams = ruleParams;
	}

	public MerchantEntity getMerchant() {
		return merchant;
	}

	public void setMerchant(MerchantEntity merchant) {
		this.merchant = merchant;
	}

	public TaxBaseEntity getTax() {
		return tax;
	}

	public void setTax(TaxBaseEntity tax) {
		this.tax = tax;
	}
}
